#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<vector>

using namespace std;

//int minFlipsMonoIncr(string s) {
//    int n = s.size();
//    vector<vector<int>> f(n, vector<int>(2));
//    f[0][0] = s[0] == '1', f[0][1] = s[1] == '0';
//    for (int i = 1; i < n; i++)
//    {
//        int t = s[i] == '0';
//        f[i][0] = f[i - 1][0] + !t;
//
//        f[i][1] = min(f[i - 1][0], f[i - 1][1]) + t;
//    }
//    return min(f[n - 1][0], f[n - 1][1]);
//}

int minFlipsMonoIncr(string s) {
    int n = s.size();
    int f0 = s[0] == '1', f1 = s[1] == '0';
    for (int i = 1; i < n; i++)
    {
        int t = s[i] == '0';
        f1 = min(f0, f1) + t;
        f0 = f0 + !t;
    }
    return min(f0, f1);
}

int main()
{
    string s = "00110";
    cout << minFlipsMonoIncr(s);
    return 0;
}